// 如何去重
const array = [1,2,3,5,1,5,9,1,2,8];  // 有重复项

/**
 * 
 * @param [] arr 
 * @returns [] res
 */
const uniqueArray = (arr) => {
    let res=[];  // find O(n)
    // 以空间换时间
    let map={};  // 对象 k:v
    // O(n^2) -> 下降
    for(let i=0;i<arr.length;i++){
        let temp=arr[i];
        // console.log(temp);
        // O(1)
        if(!map.hasOwnProperty(temp)){
            map[temp]=i;
            // console.log(map);
            res.push(temp);
        }
        // O(n)
        // if(res.indexOf(temp==-1)){
        //     res.push(temp);
        // }
    }
    return res;
}
// 即将加入的，在数组里出现过？
// call 指定函数的this -> 第一个参数
// call 借
// console.log(Object.prototype.toString.call(array));
// console.log(Array.isArray(array));
uniqueArray(array);